package ComoViajo;

import java.util.HashMap;

public class Linea {
		
	static private HashMap<String, Linea> lineasGuardadas=new HashMap<String, Linea>();
	
	private CompaniaDeTransporte compania=null;
	private String nombre;
	private int cantidadDeUso = 0;
	
	private Linea(String nombre,CompaniaDeTransporte compania) {
		this.nombre = nombre;
		this.compania = compania;
	}
	
	public static Linea getInstance(String nombre,CompaniaDeTransporte compania){
		Linea lineaBuscada = Linea.lineasGuardadas.get(nombre);
		if(lineaBuscada == null) {
			lineaBuscada=new Linea(nombre, compania);
			Linea.lineasGuardadas.put(nombre, lineaBuscada);
		}
		return lineaBuscada;
	}
	
	public static Linea getInstance(String nombre){
		return Linea.getInstance(nombre, null);
	}
	
	public String toString() {
		return this.nombre;
	}
	
	public CompaniaDeTransporte getCompania(){
		return this.compania;
	}
	
	public void notificar(Viaje viaje) {
		this.cantidadDeUso++;
		if(this.compania!=null) this.compania.notificar(this,viaje);
	}

	public int getUso() {
		return cantidadDeUso;
	}

}
